-- ABNF module extracted from ITU-T T.808 (V2) (12/2022)
;=================================
; D.1.1 Reply structure
;=================================
Status-Code = 3DIGIT
Reason-Phrase = *<TEXT, excluding CR and LF>
jpip-response-header = / JPIP-tid ; D.2.2 / JPIP-cnew ; D.2.3 / JPIP-qid ; D.2.4 / JPIP-fsiz ; D.2.5 / JPIP-rsiz ; D.2.6 / JPIP-roff ; D.2.7 / JPIP-fvsiz ; D.2.8 / JPIP-rvsiz ; D.2.9 / JPIP-rvoff ; D.2.10 / JPIP-comps ; D.2.11 / JPIP-stream ; D.2.12 / JPIP-context ; D.2.13 / JPIP-roi ; D.2.14 / JPIP-layers ; D.2.15 / JPIP-srate ; D.2.16 / JPIP-metareq ; D.2.17
/ JPIP-len ; D.2.18 / JPIP-quality ; D.2.19 / JPIP-type ; D.2.20 / JPIP-mset ; D.2.21 / JPIP-cap ; D.2.22 / JPIP-pref ; D.2.23 / JPIP-align ; D.2.24 / JPIP-subtarget ; D.2.25 / JPIP-handled ; D.2.26
;=================================
; D.2.2 Target ID (JPIP-tid)
;=================================
JPIP-tid = "JPIP-tid" ":" LWSP target-id
;=================================
; D.2.3 New Channel (JPIP-cnew)
;=================================
JPIP-cnew = "JPIP-cnew" ":" LWSP "cid" "=" channel-id ["," 1#(transport-param "=" TOKEN)]
transport-param = TOKEN
;=================================
; D.2.4 Request ID (JPIP-qid)
;=================================
JPIP-qid = "JPIP-qid" ":" LWSP UINT
;=================================
; D.2.5 Frame Size (JPIP-fsiz)
;=================================
JPIP-fsiz = "JPIP-fsiz" ":" LWSP fx "," fy
;=================================
; D.2.6 Region Size (JPIP-rsiz)
;=================================
JPIP-rsiz = "JPIP-rsiz" ":" LWSP sx "," sy
;=================================
; D.2.7 Offset (JPIP-roff)
;=================================
JPIP-roff = "JPIP-roff" ":" LWSP ox "," oy
;=================================
; D.2.8 Frame Size for Variable Dimension Data (JPIP-fvsiz)
;=================================
JPIP-fvsiz = "JPIP-fvsiz" ":" LWSP 1#UINT
;=================================
; D.2.9 Region Size for Variable Dimension Data(JPIP-rvsiz)
;=================================
JPIP-rvsiz = "JPIP-rvsiz" ":" LWSP 1#UINT
;=================================
; D.2.10 Offset for Variable Dimension Data (JPIP-rvoff)
;=================================
JPIP-rvoff = "JPIP-rvoff" ":" LWSP 1#UINT
;=================================
; D.2.11 Components (JPIP-comps)
;=================================
JPIP-comps = "JPIP-comps" ":" LWSP 1#UINT-RANGE
;=================================
; D.2.12 Codestream (JPIP-stream)
;=================================
JPIP-stream = "JPIP-stream" ":" LWSP 1#(prefixed-range / sampled-range)
prefixed-range = "<" ctxt-id ":" ctxt-elt ">" sampled-range
ctxt-id = UINT
ctxt-elt = UINT
;=================================
; D.2.13 Codestream Context (JPIP-context)
;=================================
JPIP-context = "JPIP-context" ":" LWSP 1$(context-range "=" 1#sampled-range)
;=================================
; D.2.14 ROI (JPIP-roi)
;=================================
JPIP-roi = "JPIP-roi" ":" LWSP "roi" "=" region-name ";" "fsiz" "=" UINT "," UINT ";" "rsiz" "=" UINT "," UINT ";" "roff" "=" UINT "," UINT ";"
region-name = 1*(DIGIT / ALPHA / "_")
;=================================
; D.2.15 Layers (JPIP-layers)
;=================================
JPIP-layers = "JPIP-layers" ":" LWSP UINT
;=================================
; D.2.16 Sampling Rate (JPIP-srate)
;=================================
JPIP-srate = "JPIP-srate" ":" LWSP UFLOAT
;=================================
; D.2.17 Metadata request (JPIP-metareq)
;=================================
JPIP-metareq = "JPIP-metareq" ":" LWSP 1#( "[" 1$(req-box-prop) "]" [root-bin] [max-depth] ) [metadata-only]
req-box-prop = box-type [limit] [metareq-qualifier] [priority]
;=================================
; D.2.18 Maximum Response Length (JPIP-length)
;=================================
JPIP-len = "JPIP-len" ":" LWSP UINT
;=================================
; D.2.19 Quality (JPIP-quality)
;=================================
JPIP-quality = "JPIP-quality" ":" LWSP (1*2DIGIT / "100" / "-1")
;=================================
; D.2.20 Image Return Type (JPIP-type)
;=================================
JPIP-type = "JPIP-type" ":" LWSP image-return-type
;=================================
; D.2.21 Model Set (JPIP-mset)
;=================================
JPIP-mset = "JPIP-mset" ":" LWSP 1#sampled-range
;=================================
; D.2.22 Needed Capability (JPIP-cap)
;=================================
JPIP-cap = "JPIP-cap" ":" LWSP 1#capability-code
;=================================
; D.2.23 Unavailable Preference (JPIP-pref)
;=================================
JPIP-pref = "JPIP-pref" ":" LWSP 1#related-pref-set
;=================================
; D.2.24 Alignment (JPIP-align)
;=================================
JPIP-align = "JPIP-align" ":" LWSP "yes" / "no"
;=================================
; D.2.25 Subtarget (JPIP-subtarget)
;=================================
JPIP-subtarget = "JPIP-subtarget" ":" LWSP byte-range / src-codestream-specs
;=================================
; D.2.26 Handled request (JPIP-handled)
;=================================
JPIP-handled = "JPIP-handled" ":" LWSP 1#handled-req
handled-req = (request-field | partially-handled-req)
partially-handled-req = request-field "=" handled-req-option
request-field = TOKEN
handled-req-option = TOKEN